package br.com.site.model.entity;



import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

import br.com.site.validation.Annotation.Validar;
import br.com.site.validation.Annotation.Validar.ValidationType;

@MappedSuperclass
public abstract class Pessoa  implements Auditoria, Serializable{
	
	
  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;


  @Validar
  @Column(name = "nome", nullable=false, length=100)
  private String nome;


  @Validar(nomecampo="Data de Nascimento")
  @Column(name = "dataNascimento", nullable = false)
  @Temporal(TemporalType.DATE)
  private Date dataNascimento;
  
 
  @Validar
  @Column(name = "uf", length=2)
  private String uf;
  
  @Validar(nomecampo="Profissao")
  @Column(name = "ramoAtuacao", length=100)
  private String ramoAtuacao;  
  
  
  @Column(columnDefinition="text")
  private String telefones;
  
  @Validar(type= ValidationType.EMAIL)
  @Column(length=100)
  private String email;
  
  @Column(columnDefinition="text")
  private String endereco;
  
  

  
  
  /*Auditoria*/  
  @Column(name = "loginUsuario", nullable = false)
  private String loginUsuario;
  
  @Column(name = "dtCriacao", nullable = false)
  private Date dtCriacao;
  
  @Column(name = "dtModificacao", nullable = false)
  private Date dtModificacao;
  
  @Column(name = "ativo", nullable = false)
  private boolean ativo;



  



public String getTelefones() {
	return telefones;
}

public void setTelefones(String telefones) {
	this.telefones = telefones;
}

public String getEmail() {
	return email;
}

public void setEmail(String email) {
	this.email = email;
}

public String getEndereco() {
	return endereco;
}

public void setEndereco(String endereco) {
	this.endereco = endereco;
}

public String getLoginUsuario() {
	return loginUsuario;
}

public void setLoginUsuario(String login) {
	this.loginUsuario = login;
}


public String getNome() {
	return nome;
}

public Date getDataNascimento() {
	return dataNascimento;
}

public void setNome(String nome) {
	this.nome = nome;
}

public void setDataNascimento(Date dataNascimento) {
	this.dataNascimento = dataNascimento;
}

public Date getDtCriacao() {
	return dtCriacao;
}

public Date getDtModificacao() {
	return dtModificacao;
}



public void setDtCriacao(Date dtCriacao) {
	this.dtCriacao = dtCriacao;
}


public void setDtModificacao(Date dtModificacao) {
	this.dtModificacao = dtModificacao;
}




@Override
public boolean isAtivo() {
	// TODO Auto-generated method stub
	return ativo;
}


@Override
public void setAtivo(boolean boleano) {
	// TODO Auto-generated method stub
	ativo = boleano;
}


public String getUf() {
	return uf;
}

public void setUf(String uf) {
	if (uf != null && !uf.isEmpty())
		this.uf = uf;
}


public String getRamoAtuacao() {
	return ramoAtuacao;
}

public void setRamoAtuacao(String ramoAtuacao) {
	this.ramoAtuacao = ramoAtuacao;
}

@Override
public String toString() {
	//return ToStringBuilder.reflectionToString(this, ToStringStyle.NO_FIELD_NAMES_STYLE);
	return nome;
}







  
}